take GDK_HINT_RESIZE_INC into account, and handle negative coordinates
authorHavoc Pennington <hp@pobox.com>
Sat, 16 Feb 2002 14:41:15 +0000 (14:41 +0000)
committerHavoc Pennington <hp@src.gnome.org>
Sat, 16 Feb 2002 14:41:15 +0000 (14:41 +0000)
2002-02-16  Havoc Pennington  <hp@pobox.com>

* gtk/gtkwindow.c (gtk_window_parse_geometry): take
GDK_HINT_RESIZE_INC into account, and handle negative coordinates
correctly. (Can't email Owen - hope this is OK.)

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkwindow.c

index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index d9cf7fbe6c16757445d607bc770c72c40a357b98..bec71e182542afa2bfff6fad509465ab40d073c0 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-16  Havoc Pennington  <hp@pobox.com>
+
+       * gtk/gtkwindow.c (gtk_window_parse_geometry): take
+       GDK_HINT_RESIZE_INC into account, and handle negative coordinates
+       correctly. (Can't email Owen - hope this is OK.)
+
 Fri Feb 15 20:09:45 2002  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/gtkscrolledwindow.[ch] gtk/gtkmarshallers.list:
index 7c183b4e0fa735c43ca98cdb8df42493b263ef99..597ca48f4d9d82cce0c416053a6571d3c5eb828c 100644 (file)
@@ -5608,6 +5608,13 @@ gtk_window_parse_geometry (GtkWindow   *window,
   size_set = FALSE;
   if ((result & WidthValue) || (result & HeightValue))
     {
+      GtkWindowGeometryInfo *info;
+      info = gtk_window_get_geometry_info (window, FALSE);
+      if (info && info->mask & GDK_HINT_RESIZE_INC)
+        {
+          w *= info->geometry.width_inc;
+          h *= info->geometry.height_inc;
+        }
       gtk_window_set_default_size (window, w, h);
       size_set = TRUE;
     }
@@ -5628,15 +5635,18 @@ gtk_window_parse_geometry (GtkWindow   *window,
 
   if ((result & YValue) == 0)
     y = 0;
-  
+
   if (grav == GDK_GRAVITY_SOUTH_WEST ||
       grav == GDK_GRAVITY_SOUTH_EAST)
-    y = gdk_screen_height () - h;
+    y = gdk_screen_height () - h + y;
 
   if (grav == GDK_GRAVITY_SOUTH_EAST ||
       grav == GDK_GRAVITY_NORTH_EAST)
-    x = gdk_screen_width () - w;
+    x = gdk_screen_width () - w + x;
 
+  /* we don't let you put a window offscreen; maybe some people would
+   * prefer to be able to, but it's kind of a bogus thing to do.
+   */
   if (y < 0)
     y = 0;